package leetcode.code0025;

import leetcode.IDebug;
import leetcode.helper.HelpDebug;
import leetcode.helper.tree.ListNode;

public abstract class Solution25 implements IDebug {

	public abstract ListNode reverseKGroup(ListNode head, int k);

	@Override
	public void debug1() {
		String str1 = "[1,2,3,4,5]";
		int k = 2;
		String str2 = "[2,1,4,3,5]";
		debug(str1,k,str2);
	}

	private void debug(String str1, int k, String str2) {
		ListNode head = ListNode.set(HelpDebug.str2array3(str1));
		ListNode r = this.reverseKGroup(head, k);
		ListNode e = ListNode.set(HelpDebug.str2array3(str2));
		HelpDebug.compare(e, r);
	}

	@Override
	public void debug2() {
		String str1 = "[1,2,3,4,5]";
		int k = 3;
		String str2 = "[3,2,1,4,5]";
		debug(str1,k,str2);
	}

	@Override
	public void debug3() {
		String str1 = "[1,2,3,4,5]";
		int k = 1;
		String str2 = "[1,2,3,4,5]";
		debug(str1,k,str2);
	}

	@Override
	public void debug4() {
		String str1 = "[1]";
		int k = 1;
		String str2 = "[1]";
		debug(str1,k,str2);
	}
	public void debug5() {
		String str1 = "[1,2,3,4,5]";
		int k = 10;
		String str2 = "[1,2,3,4,5]";
		debug(str1,k,str2);
	}

}
